cuando paso esta URL, necesito obtener la confirmación de todos los usuarios ---> http://localhost:3080/api/msgs/email=k1199@gmail.com pero obtengo la confirmación de un solo usuario y obtengo este error [Error [ERR_HTTP_HEADERS_SENT ]: no se pueden establecer encabezados después de enviarlos al cliente]
app.get('/api/msgs/:msg', (req, res) => { console.log('api/users called!!!!!!!') const databuffer = fs.readFileSync('notes1.json', 'utf8') const datajson = databuffer.toString() const dtafil = JSON.parse(datajson); id = req.url.split('/')[3] findname = req.url.split('/')[2] console.log(findname) let a = id; let h = 0; let k = []; let pre = []; for (let i = 0; i < a.length; i++) { if (a[i] == "=") h = i; } for (let j = 1; j < a.length - h; j++) { k.push(a[h + j]); } for (let s = 0; s <= a.length - (k.length + 1); s++) { pre.push(a[s]); } var idegenerator = k.join(""); var idegeneratorlk = pre.join("") console.log(idegeneratorlk, idegenerator) if (idegeneratorlk == 'email=') { for(i=0;i<=dtafil.length;i++){ if(dtafil[i].namees === idegenerator){ console.log(dtafil[i]) res.json(dtafil[i]); } } // const user = dtafil.find((i) => i.namees === idegenerator) // res.json(user); } else if (idegeneratorlk == 'youtube=') { const user = dtafil.find((i) => i.youtube === idegenerator) res.json(user); } else { res.json('404 Not fount'); } });En términos simples, ERR_HTTP_HEADERS_SENT significa que está enviando una respuesta más de una vez para la misma solicitud.
Como en su código, vea esto para el bucle:
for(i=0;i<=dtafil.length;i++){ if(dtafil[i].namees === idegenerator){ console.log(dtafil[i]) res.json(dtafil[i]); } }Está enviando una respuesta JSON en cada iteración que enviará la misma respuesta al cliente varias veces que no puede.
Guarde los datos en alguna variable y luego envíe una respuesta de inmediato fuera del bucle foor, algo como esto:
if (idegeneratorlk == 'email=') { const response = dtafil.filter(data => { return data.namees === idegenerator; }) res.json(response); }Acabo de escribir este pseudocódigo como referencia que es posible que deba editar según su caso de uso.